#ifndef __CE_GFX_IMESH_H__
#define __CE_GFX_IMESH_H__

#include <export.h>
#include <iobject.h>

struct iDevice;
struct ceRenderEnvironment;
class ceBoundingBox;

/**
 * \addtogroup graphics
 * @{
 */

/**
 * @brief Interface for every mesh like object that can be rendered.
 */
struct CE_API iMesh : public iObject
{

  virtual void Draw (const ceRenderEnvironment& renderEnvironment, iDevice* device) = 0;

  virtual void Update (const ceRenderEnvironment& renderEnvironment, iDevice* device) = 0;

  virtual const ceBoundingBox& GetBoundingBox () const = 0;

};

/** @} */

#endif /* ! __CE_GFX_IMESH_H__ */

